/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package CapaLogica;

import java.util.ArrayList;
import java.util.TreeMap;

/**
 *
 * @author Elayner
 */
public class Gestor {
    
    public boolean registrarDistrito(String id, String nombre, String descripcion) throws Exception{
        Distrito objDistrito=new MultiDistrito().crear(id, nombre, descripcion);
        return objDistrito!=null;
    } 
    
    public boolean registrarCongregacion(String id, String denominacion, int numMiembros, String codPostal, String direccion, String encargado,String pidDistrito) throws Exception{
        Distrito ObjDistrito=new MultiDistrito().buscarPorCodigo(pidDistrito);
        ObjDistrito.registrarCongregacion(id, denominacion, numMiembros, codPostal, direccion, encargado);
        return ObjDistrito!=null;
    }
    
    
   public ArrayList buscarDonacionesDeCongregacion(String pidCongregacion,String pperiodo) throws Exception {
        Registro objRegistro;
        ArrayList<Registro> listaRegistros=new ArrayList();
        listaRegistros=new MultiRegistro().buscarRegistrosPorCongregacion(pidCongregacion,pperiodo);
        ArrayList<TreeMap> listaDatosRegistros=new ArrayList();
        
        for(int i = 0, j=1; i < listaRegistros.size();i++, j++){
            objRegistro = listaRegistros.get(i);
            TreeMap datos = new TreeMap();
            if(objRegistro!=null){
                datos.put("idRegistro", objRegistro.getId());
                datos.put("fecha", objRegistro.getFecha());
                datos.put("monto", objRegistro.getMonto());
                datos.put("periodo", objRegistro.getPeriodo());
                listaDatosRegistros.add(datos);
            }
        }
        return listaDatosRegistros;
    }
   
   
    public ArrayList buscarDonacionesDeDistrito(String pidDistrito) throws Exception {
        Registro objRegistro;
        Congregacion objCongregacion;
        ArrayList<Congregacion> listaCongregaciones=new ArrayList();
        ArrayList<Registro> listaRegistros=new ArrayList();
        Distrito objDistrito=new MultiDistrito().buscarPorCodigo(pidDistrito);
        listaCongregaciones=objDistrito.getListaCongregaciones();
        ArrayList<TreeMap> listaDatosRegistros=new ArrayList();
        
        for(int i = 0, j=1; i < listaCongregaciones.size();i++, j++){
            objCongregacion = listaCongregaciones.get(i);
            listaRegistros=new MultiRegistro().buscarRegistrosPorCongregacion(objCongregacion.getId(), "");
            objRegistro=listaRegistros.get(i);
            TreeMap datos = new TreeMap();
            if(objRegistro!=null){
                datos.put("idRegistro", objRegistro.getId());
                datos.put("fecha", objRegistro.getFecha());
                datos.put("monto", objRegistro.getMonto());
                datos.put("periodo", objRegistro.getPeriodo());
                listaDatosRegistros.add(datos);
            }
        }
        return listaDatosRegistros;
    }
    
     public ArrayList buscarDistrito(String pidDistrito) throws Exception {
        Distrito objDistrito;
        Congregacion objcongregacion;
        objDistrito=new MultiDistrito().buscarPorCodigo(pidDistrito);
        ArrayList<Congregacion> listaCongregaciones=new ArrayList();
        listaCongregaciones=objDistrito.getListaCongregaciones();
        ArrayList<TreeMap> listaDatosRetorno=new ArrayList();
               
        
        for(int i = 0, j=1; i < listaCongregaciones.size();i++, j++){
            objcongregacion = listaCongregaciones.get(i);
            TreeMap datos = new TreeMap();
            if(objcongregacion!=null){
                datos.put("Id", objcongregacion.getId());
                datos.put("denominacion", objcongregacion.getDenominacion());
                datos.put("num_Miembros", objcongregacion.getNumMiembros());
                datos.put("codPostal", objcongregacion.getCodPostal());
                datos.put("direccion", objcongregacion.getDireccion());
                datos.put("encargado", objcongregacion.getEncargado()); 
                listaDatosRetorno.add(datos);
            }
        }
        
        return listaDatosRetorno;
    }
    
}
